// 导入已经配置好的axios函数对象
// request就是经过各种初始配置的axios对象，可以直接使用
import request from '@/utils/request.js'

// 1.导出一个函数，可以对用户账号进行校验
// data:{mobile:xx, code:xx} 是一个对象参数
// 现在对data做升级，使得在没有任何注释的条件下，也可以直接知道当前api函数需要什么参数
// 就是把参数做成是“对象解构赋值”的样子，这样就可以直接知道需要哪些参数了
// export function apiUserLogin (data) {
export function apiUserLogin ({ mobile, code }) {
  // 调用axios
  // axios.get()
  // axios.post()
  // axios({
  //     url:请求地址,
  //     method:'get/post',
  //     params:xx,  // get方式传递参数
  //     data:xx     // post方式传递参数
  // })

  // return 调用当前函数，可以获得请求结果
  return request({
    url: '/app/v1_0/authorizations',
    method: 'POST',
    data: {
      // 也可用简易成员赋值
      mobile: mobile,
      code: code
    }
  })
}

// 2.关注作者
// target:被关注作者的id
export function apiFollow (target) {
  return request({
    url: '/app/v1_0/user/followings',
    method: 'post',
    data: {
      // 成员简易赋值
      target
    }
  })
}

// 3.取消关注
// target:取消关注作者的id
export function apiUnFollow (target) {
  return request({
    url: `/app/v1_0/user/followings/${target}`,
    method: 'delete'
  })
}

// 4.获取用户的基本信息
/**
 * api:获取用户自己信息
 * 接口文档的目标id 不用传->忽略
 * 接口：【获取用户自己信息】
 */
export function apiUserInfo () {
  return request({
    url: '/app/v1_0/user',
    method: 'get'
  })
}

// 5.获取用户个人资料
// 接口：【获取用户个人资料】
export function apiUserProfile () {
  return request({
    url: '/app/v1_0/user/profile',
    method: 'get'
  })
}

// 6.上传头像的api函数
//  put: 全部修改
//  patch:局部修改
// fdObj:是FormData对象，里边有附件信息，photo：代表头像
export function apiUserPhoto (fdObj) {
  return request({
    url: '/app/v1_0/user/photo',
    method: 'patch',
    data: fdObj // 是FormData对象
  })
}

// 7.更新用户资料
// 接口：【编辑用户个人资料（包含实名认证）】
/**
 * @param {用户昵称} name
 * @param {用户性别} gender
 * @param {生日} birthday
 * 注意点：photo:不用做处理，上传的头像逻辑已做好
 */
export function apiUserSaveProfile ({ name, gender, birthday }) {
  return request({
    url: '/app/v1_0/user/profile', // 编辑资料的地址
    data: {
      name,
      gender,
      birthday
    },
    method: 'patch'
  })
}
